package com.zleetcode.数组;

public class _88_合并两个有序数组 {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int tail = m + n - 1;
        int p1 = m - 1;
        int p2 = n - 1;
        while (p2 >= 0) {// nums2往nums1合并，只要nums2遍历完毕，肯定已经完全有序，就停止
            if (p1 < 0 || nums1[p1] <= nums2[p2]) {
                // p1 < 0 表示 nums1 已经遍历完毕(num1大)，那么就直接把num2的所有元素直接拷贝到num1即可
                nums1[tail--] = nums2[p2--];
            } else {
                nums1[tail--] = nums2[p1--];
            }
        }
    }
}
